module Cliente where

import Network
import System -- tava Faltando so isso
import System.IO
import IO
import Text.Printf
import System.Environment
import Network.Socket
import Control.Monad
import Data.Set
import Control.Concurrent

port   = 6666
server = "localhost"

main :: IO()
main = withSocketsDo $ do
    {-h <- connectTo server (PortNumber (fromIntegral port))
    arquivo <- readFile "ArquivoAutomato_Exemplo.txt"
    putStrLn arquivo
    hSetBuffering h LineBuffering
    hPutStrLn h (arquivo ++ "\n<FIM>")
    hFlush h
    esperaResposta h
    hClose h-}
	args <- getArgs
   	if ((length args) == 2)
   		then do
   		texto <- readFile (args!!1)
		putStrLn texto
		h <- connectTo (args!!0) (PortNumber (fromIntegral port))
		hSetBuffering h NoBuffering
		hPutStrLn h (texto ++ "\n<FIM>")
		hFlush h
		esperaResposta h
		hClose h
		else
			putStrLn "Pouco argumentos"

	--args <- getArgs
	--putStr (show args)
	--arquivo <- readFile (args!!1)
    --server <- (args!!0)

esperaResposta h = do
     putStrLn "Nada ainda"
     openFile "log.txt" WriteMode >>= hClose
     threadDelay 1000000
     b <- hIsEOF h
     if (b == False)
        then  do
	     gravarRespostaLinhas h
	     putStr "Deu certo"
	     return ()
        else
     		esperaResposta h

gravarRespostaLinhas :: Handle -> IO ()
gravarRespostaLinhas rede  = do
				linha <- hGetLine rede
				putStrLn linha
				hFlush rede
				if ( linha == "<FIM>" )
					then
						return ()
					else (do
						appendFile "log.txt" (linha ++ "\n")
						gravarRespostaLinhas rede)